package com.woniuxueyuan.util;

import com.nimbusds.jose.*;
import com.nimbusds.jose.crypto.MACSigner;

import java.util.HashMap;

public class JWTTest {
    public static void main(String[] args) throws JOSEException {
        //创建jwt
        //1.创建头部(加密方式，常量)
        //加密方式算法
        //可逆，不可逆
        //对称（只有一个密钥），非对称（一个密钥，一个公钥）

        JWSHeader header=new JWSHeader.Builder(JWSAlgorithm.HS256)
                .type(JOSEObjectType.JWT).build();
        System.out.println(header.toBase64URL());

        //2.创建载荷
        HashMap<String, Object> h = new HashMap<>();
        h.put("id",1);
        h.put("username","laoma");
       Payload payload=new Payload(h);
        System.out.println(payload.toBase64URL());
        //3.创建签名=加密（头部+载荷+密钥）
        JWSObject jwsObject = new JWSObject(header,payload);
        String secretKey="天王盖地虎，宝塔镇河妖";//密钥
        MACSigner jwsSigner = new MACSigner(secretKey);
        jwsObject.sign(jwsSigner);//加密方法

        String jwt = jwsObject.serialize();//生成jwt
        System.out.println(jwt);
    }
}
